package demo1;

interface IShape {
    // 成员变量
    public static final int a = 10;
    int b = 20; // 默认是 public static final ,必须初始化

    // 接口当中的方法如果要实现，需要使用 default 修饰
    default void func() {
        System.out.println("默认的方法");
    } // 默认方法可以重写也可以不重写

    // 接口当中的静态方法，可以有具体的实现
    public static void func2() {
        System.out.println("静态的方法");
    }

    void draw(); // 抽象方法必须重写
}

class A implements IShape {

    @Override
    public void func() {
        System.out.println("func()重写");
    }

    @Override
    public void draw() {
        System.out.println("draw()重写");
    }
}

public class Test {
    public static void main(String[] args) {
        A a = new A();
        a.draw();
        a.func();
        IShape.func2(); // 静态的方法直接类调用
    }
}

